package com.xy.biz.uc.domain.req;

import com.xy.lang.enums.CodeEnum;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.validation.constraints.NotNull;
import java.util.List;

@NoArgsConstructor
@AllArgsConstructor
@Builder
@Data
public class IsInRoleRequest {

    /**
     * 包括的角色编号集合
     */
    @NotNull
    private List<String> includeRoleCodeList;

    /**
     * 不包括的角色编号集合
     */
    private List<String> excludeRoleCodeList;

    /**
     * 具有角色的关系
     */
    @NotNull
    private Integer ownership;

    /**
     * 具有角色的关系的枚举
     */
    public enum Ownership implements CodeEnum {
        /**
         * 仅有一个角色
         */
        ONLY_ONE_ROLE(0),
        /**
         * 具有至少一个角色
         */
        ONE_IN_ROLE(1),
        /**
         * 具有所有的角色
         */
        ALL_IN_ROLE(2);

        private int code;

        Ownership(int code) {
            this.code = code;
        }

        @Override
        public int getCode() {
            return this.code;
        }

    }

}
